<?php
/*
###########################################################################
#Esta obra es distribuida bajo los términos de la licencia GPL Versión 3.0#
###########################################################################
*/
class Administrar_estudiante extends CI_Controller {

	function __construct()
	{
		parent::__construct();
		$this->load->helper('form');
		$this->load->model('core/estudiante_model');
		$this->load->model('core/tercero_model'); 	
		$this->load->model('core/Registro'); 
	}
/////////////////////////////////////////////////////////////////////////////////////////////////
	function index()
	{
		//----------------------------------------------------------
		$d = array();
		//----------------------------------------------------------
		$d['urlRegresar'] 	= site_url('core/home/index');	

		//Configuración paginador
		$this->load->library('pagination');
		$config['base_url'] = site_url('core/administrar_estudiante/index');
		$config['total_rows'] = $this->estudiante_model->obtenerNumListaPac();
		$config['uri_segment'] = 4;
		$config['per_page'] = '30'; //Número de noticias por página
		$config['num_links'] = '3'; //Número de enlaces antes y después de la página actual
		$config['next_link'] = 'Siguiente&nbsp;&gt;';
		$config['prev_link'] = '&lt;&nbsp;Anterior';
		$config['first_link'] = '&lt;&lt;&nbsp;Primero'; //Texto del enlace que nos lleva a la página	&lt;
		$config['last_link'] = 'Último&nbsp;&gt;&gt;'; //Texto del enlace que nos lleva a la última página
		$this->pagination->initialize($config);

		$d['lista'] = $this->estudiante_model->obtenerListaPac($config['per_page'],
		$this->uri->segment(4)); //le pasamos el total de elementos por página y el offset
		
		$this->load->view('core/core_inicio');
		$this->load->view('core/estudiante_busqueda',$d);
		$this->load->view('core/core_fin');
	}

/////////////////////////////////////////////////////////////////////////////////////////////////
	function buscarEstudiante()
	{
		//----------------------------------------------------------
		$d = array();
		//----------------------------------------------------------
		$d['urlRegresar'] 	= site_url('core/home/index');	
		//----------------------------------------------------------
		$d['primer_apellido'] 	= $this->input->post('primer_apellido');
		$d['primer_nombre'] 	= $this->input->post('primer_nombre');
		$d['segundo_apellido'] 	= $this->input->post('segundo_apellido');
		$d['segundo_nombre'] 	= $this->input->post('segundo_nombre');
		$d['numero_documento'] 	= $this->input->post('numero_documento');
		//----------------------------------------------------------
		//Configuración paginador
		$this->load->library('pagination');
		$config['base_url'] = site_url('core/administrar_estudiante/index');
		$config['total_rows'] = $this->estudiante_model->obtenerNumListaPacCon($d);
		$config['uri_segment'] = 4;
		$config['per_page'] = '30'; //Número de noticias por página
		$config['num_links'] = '3'; //Número de enlaces antes y después de la página actual
		$config['next_link'] = 'Siguiente&nbsp;&gt;';
		$config['prev_link'] = '&lt;&nbsp;Anterior';
		$config['first_link'] = '&lt;&lt;&nbsp;Primero'; //Texto del enlace que nos lleva a la página	&lt;
		$config['last_link'] = 'Último&nbsp;&gt;&gt;'; //Texto del enlace que nos lleva a la última página
		$this->pagination->initialize($config);

		$d['lista'] = $this->estudiante_model->obtenerListaPacCon($d,$config['per_page'],
		$this->uri->segment(4)); //le pasamos el total de elementos por página y el offset
		
		$this->load->view('core/core_inicio');
		$this->load->view('core/estudiante_busqueda',$d);
		$this->load->view('core/core_fin');
	}
/////////////////////////////////////////////////////////////////////////////////////////////////
	function veriEstudiante()
	{
		//----------------------------------------------------------
		$d = array();
		//----------------------------------------------------------
		$d['urlRegresar'] 	= site_url('core/administrar_estudiante');
		$d['tipo_documento']	= $this->tercero_model->tipos_documento();
		//----------------------------------------------------------
		$this->load->view('core/core_inicio');
		$this->load->view('core/estudiante_verificar', $d);
		$this->load->view('core/core_fin');
		//----------------------------------------------------------
	}
/////////////////////////////////////////////////////////////////////////////////////////////////
	function verificarEstudiante_()
	{
		//----------------------------------------------------------
		$d = array();
		//----------------------------------------------------------
		$d['numero_documento'] 	= $this->input->post('numero_documento');
		$verTer = $this->tercero_model->verificaTercero($d['numero_documento']);
		//Verifica la existencia del tercero en el sistema
		if($verTer != 0){
			$verPas = $this->estudiante_model->verificarEstudiante($verTer);
			//Verifica la existencia del tercero como estudiante
			if($verPas != 0){
				redirect('core/administrar_estudiante/editarEstudiante/'.$verPas);
			}else{
				redirect('core/administrar_estudiante/crearEstudiante/'.$verTer);
			}
		}else{
			redirect('core/administrar_estudiante/crearTerceroEstudiante/'.$d['numero_documento']);
		}
	}
/////////////////////////////////////////////////////////////////////////////////////////////////
	function crearTerceroEstudiante($numero_documento)
	{
		//----------------------------------------------------------
		$d = array();
		//----------------------------------------------------------
		$d['urlRegresar'] 	= site_url('core/administrar_estudiante');
		$d['tipo_documento']	= $this->tercero_model->tipos_documento();
		$d['departamento']	 	= $this->tercero_model->obtenerDepartamento();
		$d['numero_documento'] = $numero_documento;
		//----------------------------------------------------------
		$this->load->view('core/core_inicio');
		$this->load->view('core/estudiante_crear_ter', $d);
		$this->load->view('core/core_fin');
		//----------------------------------------------------------
	}
/////////////////////////////////////////////////////////////////////////////////////////////////
	function crearEstudiante($id_tercero)
	{
		//----------------------------------------------------------
		$d = array();
		//----------------------------------------------------------
		$d['urlRegresar'] 	= site_url('core/administrar_estudiante');
		$d['tipo_documento']	= $this->tercero_model->tipos_documento();
		$d['tercero'] = $this->estudiante_model->obtenerTercero($id_tercero);
		//----------------------------------------------------------
		$this->load->view('core/core_inicio');
		$this->load->view('core/estudiante_crear', $d);
		$this->load->view('core/core_fin');
		//----------------------------------------------------------
	}
/////////////////////////////////////////////////////////////////////////////////////////////////
	function crearEstudianteTer_()
	{
		//----------------------------------------------------------
		$d = array();
		//----------------------------------------------------------
		$d['numero_documento'] 	= $this->input->post('numero_documento');	
		$verTer = $this->tercero_model ->verificaTercero($d['numero_documento']);
		if($verTer != 0){
			$dat['mensaje'] = "Ya existe un tercero con el número de documento de identidad ".$d['numero_documento']."!!";
			$dat['urlRegresar'] = site_url('core/administrar_estudiante/index');
			$this->load->view('core/presentacionMensaje', $dat);
			return;
		}
		//----------------------------------------------------------
		$d['primer_apellido'] 	= mb_strtoupper($this->input->post('primer_apellido'),'utf-8');
		$d['segundo_apellido'] 	= mb_strtoupper($this->input->post('segundo_apellido'),'utf-8');
		$d['primer_nombre'] 	= mb_strtoupper($this->input->post('primer_nombre'),'utf-8');
		$d['segundo_nombre'] 	= mb_strtoupper($this->input->post('segundo_nombre'),'utf-8');
		$d['id_tipo_documento'] = $this->input->post('id_tipo_documento');
		$d['fecha_nacimiento'] = $this->input->post('fecha_nacimiento');
		
		$d['razon_social'] = "";
		$d['departamento'] 	= $this->input->post('departamento');
		$d['municipio'] 	= $this->input->post('municipio');
		$d['vereda'] 	= "";
		$d['direccion'] 	= mb_strtoupper($this->input->post('direccion'),'utf-8');
		$d['zona'] 	= "";
		$d['telefono'] 	= $this->input->post('telefono');
		$d['celular'] 	= "";
		$d['fax'] 	="";
		$d['email'] 	= "";
		
		$d['genero'] 	= $this->input->post('genero');
		$d['tipo_sangre'] 	= $this->input->post('tipo_sangre');
		$d['cod_banco'] 	= $this->input->post('cod_banco');
		$d['alergias'] 	= $this->input->post('alergias');
		$d['medicamentos'] 	= $this->input->post('medicamentos');
		$d['observaciones'] = $this->input->post('observaciones');
		//----------------------------------------------------------
		$r = $this->tercero_model->crearTerceroDb($d);
		//----------------------------------------------------------
		$d['id_tercero'] 	= $r['id_tercero'];
		//----------------------------------------------------------
		$r = $this->estudiante_model->crearEstudianteDb($d);
		//----------------------------------------------------------
		if($r['error'])
		{
			$this->Registro->agregar($this->session->userdata('id_usuario'),'core',__CLASS__,__FUNCTION__
			,'aplicacion',"Error en la creación del estudiante ".$d['id_tercero']);
			$dat['mensaje'] = "La operación no se realio con exito.";
			$dat['urlRegresar'] = site_url('core/administrar_estudiante/index');
			$this->load->view('core/presentacionMensaje', $dat);
			return;
		}
		//----------------------------------------------------------
		$this->Registro->agregar($this->session->userdata('id_usuario'),'core',__CLASS__,__FUNCTION__
			,'aplicacion',"Se creo el estudiante con id ".$r['id_estudiante']);
		//----------------------------------------------------------
		$dt['mensaje']  = "Se ha creado el estudiante exitosamente!!";
		$dt['urlRegresar'] 	= site_url("core/administrar_estudiante/index");
		 
		//----------------------------------------------------------
		$this->load->view('core/presentacionMensaje', $dt);
		return;	
		//----------------------------------------------------------	
	}

///////////////////////////////////////////////////////////////////
	function crearEstudiante_()
	{
		//----------------------------------------------------------
		$d = array();
		//----------------------------------------------------------
		$d['id_tercero'] 	= $this->input->post('id_tercero');
		$d['primer_apellido'] 	= mb_strtoupper($this->input->post('primer_apellido'),'utf-8');
		$d['segundo_apellido'] 	= mb_strtoupper($this->input->post('segundo_apellido'),'utf-8');
		$d['primer_nombre'] 	= mb_strtoupper($this->input->post('primer_nombre'),'utf-8');
		$d['segundo_nombre'] 	= mb_strtoupper($this->input->post('segundo_nombre'),'utf-8');
		$d['razon_social'] 	= "";
		$d['fecha_nacimiento'] 	= $this->input->post('fecha_nacimiento');
		$d['id_tipo_documento'] 	= $this->input->post('id_tipo_documento');
		$d['numero_documento'] 	= $this->input->post('numero_documento');
		$d['departamento'] 	= $this->input->post('departamento');
		$d['municipio'] 	= $this->input->post('municipio');
		$d['vereda'] 	= "";
		$d['direccion'] 	= mb_strtoupper($this->input->post('direccion'),'utf-8');
		$d['zona'] 	="";
		$d['telefono'] 	= $this->input->post('telefono');
		$d['celular'] 	= "";
		$d['fax'] 	="";
		$d['email'] 	= "";
		$d['observaciones'] 	= mb_strtoupper($this->input->post('observaciones'),'utf-8');	
		//----------------------------------------------------------
		$r = $this->tercero_model->editarTerceroDb($d);
		//----------------------------------------------------------
		$d['genero'] 	= $this->input->post('genero');
		$d['tipo_sangre'] 	= $this->input->post('tipo_sangre');
		$d['cod_banco'] 	= $this->input->post('cod_banco');
		$d['alergias'] 	= $this->input->post('alergias');
		$d['medicamentos'] 	= $this->input->post('medicamentos');
		//----------------------------------------------------------
		$r = $this->estudiante_model->crearEstudianteDb($d);
		//----------------------------------------------------------
		if($r['error'])
		{
			$this->Registro->agregar($this->session->userdata('id_usuario'),'core',__CLASS__,__FUNCTION__
			,'aplicacion',"Error en la creación del estudiante ".$d['id_tercero']);
			$dat['mensaje'] = "La operación no se realio con exito.";
			$dat['urlRegresar'] = site_url('core/administrar_estudiante/index');
			$this->load->view('core/presentacionMensaje', $dat);
			return;
		}
		//----------------------------------------------------------
		$this->Registro->agregar($this->session->userdata('id_usuario'),'core',__CLASS__,__FUNCTION__
			,'aplicacion',"Se creo el estudiante con id ".$r['id_estudiante']);
		//----------------------------------------------------------
		$dt['mensaje']  = "Se ha creado el estudiante exitosamente!!";
		$dt['urlRegresar'] 	= site_url("core/administrar_estudiante/index");
		 
		//----------------------------------------------------------
		$this->load->view('core/presentacionMensaje', $dt);
		return;	
		//----------------------------------------------------------	
		
	}
///////////////////////////////////////////////////////////////////
	function editarEstudiante($id_estudiante)
	{
		//----------------------------------------------------------
		$d = array();
		//----------------------------------------------------------
		$d['urlRegresar'] 	= site_url('core/administrar_estudiante');
		$d['estudiante'] = $this->estudiante_model->obtenerEstudianteConsulta($id_estudiante);
		$d['tercero'] = $this->estudiante_model->obtenerTercero($d['estudiante']['id_tercero']);
		$d['tipo_documento']	= $this->tercero_model->tipos_documento();		
		$d['departamento']	 	= $this->tercero_model->obtenerDepartamento();	
		$d['municipio'] 		= $this->tercero_model->obtenerMunicipio($d['tercero']['departamento']);
		$d['parientes'] = $this->estudiante_model->obtenerParientes($id_estudiante);
		//----------------------------------------------------------
		$this->load->view('core/core_inicio');
		$this->load->view('core/estudiante_editar', $d);
		$this->load->view('core/core_fin');
		//----------------------------------------------------------
	}
///////////////////////////////////////////////////////////////////	
	function editarEstudianteTer_()
	{
		//----------------------------------------------------------
		$d = array();
		//----------------------------------------------------------
		$d['id_tercero'] 	= $this->input->post('id_tercero');
		$d['primer_apellido'] 	= mb_strtoupper($this->input->post('primer_apellido'),'utf-8');
		$d['segundo_apellido'] 	= mb_strtoupper($this->input->post('segundo_apellido'),'utf-8');
		$d['primer_nombre'] 	= mb_strtoupper($this->input->post('primer_nombre'),'utf-8');
		$d['segundo_nombre'] 	= mb_strtoupper($this->input->post('segundo_nombre'),'utf-8');
		$d['razon_social'] 	= "";
		$d['fecha_nacimiento'] 	= $this->input->post('fecha_nacimiento');
		$d['id_tipo_documento'] 	= $this->input->post('id_tipo_documento');
		$d['numero_documento'] 	= $this->input->post('numero_documento');
		$d['departamento'] 	= $this->input->post('departamento');
		$d['municipio'] 	= $this->input->post('municipio');
		$d['vereda'] 	= mb_strtoupper($this->input->post('vereda'),'utf-8');
		$d['direccion'] 	= mb_strtoupper($this->input->post('direccion'),'utf-8');
		$d['zona'] 	= "";
		$d['telefono'] 	= $this->input->post('telefono');
		$d['celular'] 	= "";
		$d['fax'] 	= "";
		$d['email'] 	= "";
		$d['observaciones'] 	= mb_strtoupper($this->input->post('observaciones'),'utf-8');	
		//----------------------------------------------------------
		$r = $this->tercero_model->editarTerceroDb($d);
		//----------------------------------------------------------
		$d['genero'] 	= $this->input->post('genero');
		$d['tipo_sangre'] 	= $this->input->post('tipo_sangre');
		$d['cod_banco'] 	= $this->input->post('cod_banco');
		$d['alergias'] 	= $this->input->post('alergias');
		$d['medicamentos'] 	= $this->input->post('medicamentos');
		$d['id_estudiante'] 	= $this->input->post('id_estudiante');
		//----------------------------------------------------------
		$r = $this->estudiante_model->editarEstudianteDb($d);
		//----------------------------------------------------------
		if($r['error'])
		{
			$this->Registro->agregar($this->session->userdata('id_usuario'),'core',__CLASS__,__FUNCTION__
			,'aplicacion',"Error en la modificación del estudiante con el ID ".$d['id_estudiante']);
			$dat['mensaje'] = "La operación no se realio con exito.";
			$dat['urlRegresar'] = site_url('core/administrar_estudiante/index');
			$this->load->view('core/presentacionMensaje', $dat);
			return;
		}
		//----------------------------------------------------------
		$this->Registro->agregar($this->session->userdata('id_usuario'),'core',__CLASS__,__FUNCTION__
			,'aplicacion',"Se modifico el estudiante con id ".$d['id_estudiante']);
		//----------------------------------------------------------
		$dt['mensaje']  = "Se ha modificado el estudiante exitosamente!!";
		$dt['urlRegresar'] 	= site_url("core/administrar_estudiante/index");
		 
		//----------------------------------------------------------
		$this->load->view('core/presentacionMensaje', $dt);
		return;	
	}	
/////////////////////////////////////////////////////////////////////////////////////////////////
}